/*----------------------------------------------------------------------------*\
|
|						Public Interface to Muse Technology
|
|							     www.Muse.com
| Author : SunJun 
| Email : sundoom@msn.com
\*----------------------------------------------------------------------------*/

//////////////////////////////////////////////////////////////////////////
// $Id: MProperty.h,v 1.1 2009/04/03 12:46:09 sunjun Exp $
//////////////////////////////////////////////////////////////////////////

#ifndef __MProperty__
#define __MProperty__

//////////////////////////////////////////////////////////////////////////

#if defined __cplusplus

//////////////////////////////////////////////////////////////////////////

#include <Muse.h>
#include <MVar.h>

//////////////////////////////////////////////////////////////////////////

NAMESPACE_BEGIN

//////////////////////////////////////////////////////////////////////////

	typedef MPtr<class MProperty>MPropertyPtr;

	//////////////////////////////////////////////////////////////////////////

	// this class provides an object-oriented property interface.
	class API MProperty : public MReference
	{
	public:
		// constructor
		MProperty( const MVar& var );

		// destructor
		virtual ~MProperty();
	
		// get the property type
		INLINE U32 type() const;

		// get the property value
		INLINE const MVar& value() const;

		// set the property value
		INLINE VOID value(const MVar& var);

	private:
		MVar mVar;
	};

//////////////////////////////////////////////////////////////////////////

NAMESPACE_END

//////////////////////////////////////////////////////////////////////////

#endif // __cplusplus

//////////////////////////////////////////////////////////////////////////

#endif // __MProperty__

//////////////////////////////////////////////////////////////////////////